The disclosures herein are related to build-to-order computer systems and more particularly to a method for installing and testing software for a computer system.
Personal computer systems in general and IBM compatible personal computer systems in particular have attained widespread use for providing computing power to many segments of society. A personal computer system can usually be defined as a desk-top, floor-standing, or portable microcomputer that includes a system unit having a system processor and associated volatile and non-volatile memory, a display monitor, a keyboard, one or more diskette drives, a fixed disk storage device and an optional printer.
It has been known to install software and to perform tests on computer systems before they are shipped to businesses or individual customers. The goal of software installation and testing is to efficiently produce a useful, reliable computer system which may be delivered to businesses and individuals free from errors and ready to run. Software installation often includes loading a desired package of software onto the computer system, preparing appropriate environment variables for the computer, and preparing appropriate initialization files for the loaded software. Software testing often includes making sure that a desired version of software has been installed onto the computer system and that appropriate drivers are present on the computer system.
It has been known in the industry to install software and to test computer systems during manufacture by performing a fixed procedure before they are shipped to customers. For instance, a diskette containing certain diagnostic tests for a certain type of computer system is created. The diskette includes lengthy, often-complicated batch files which direct the software installation and diagnostic processes. The diskette further contains all the executable files for performing tests on the computer system being purchased.
Each computer system being built is provided with a respective copy of this diskette. These diskettes accompany the computer systems being built around a factory floor during the manufacturing process, tests being run on the respective computer system according to the order inherent in the batch file. In the Dell factory, the instructions for software installation are provided in a system descriptor record on these diskettes. A sequencing program then reads the system descriptor record and launches each software installation script.
Currently, the sequencing program reads the system descriptor record and searches for a table file ($PN.TAB) for each software object step to determine which Thompson shell script to launch. This method, while it eliminates the need for top level branching scripts, only allows Thompson shell scripts to be launched. Thompson shell scripts are the only scripting language used in the build-to-order process and are the only scripts the current parser supports. Thompson shell is a non-standard implementation of the Bourne shell and while currently operational, presents limited growth potential. The Thompson shell scripting skill set is not available in the programming market, while other languages are widely accepted and the skill sets are readily available. In addition, common code must be duplicated within many different scripts to perform common tasks such as unzipping files, inserting commands to be run during operating system setup, auditing and error checking.
Therefore, in view of the limitations of past developments, what is needed is a means for allowing other languages to be used in the build-to-order software downloading and testing process.
Accordingly, one embodiment utilizes a process file in conjunction with a configuration file for the sequencing program that defines commands in the process file. In addition, the table file allows remapping of languages within a single file and removes the need for a software script to determine the language of the OS and which shell to launch. The existence of the table file indicates to the sequencing program that it should launch the Thompson shell scripts from most specific to most general. To this end, a method for installing software for a computer system having a plurality of components, includes an associated step sequence. The step sequence includes a plurality of steps where each step includes at least one command of a plurality of computer software languages. A step is associated with a respective software component descriptor. A software component descriptor corresponds to installing a respective software component on the computer system. The method includes accessing the at least one command within the step sequence; determining a corresponding computer software language associated with the at least one command; executing the at least one command in the corresponding computer software language to install the respective software component; and repeating the accessing, determining and executing for the plurality of steps.